Mobile robot sitting and standing

ABSTRACT

A method of operating a robot includes assuming a resting pose of the robot on a surface. The robot includes an inverted pendulum body, a counter-balance body disposed on the inverted pendulum body and configured to move relative to the inverted pendulum body, at least one arm connected to the inverted pendulum body and configured to move relative to the inverted pendulum body, at least one leg prismatically coupled to the inverted pendulum body, and a drive wheel rotatably coupled to the at least one leg. The method also includes moving from the resting pose to a sitting pose by moving the counter-balance body relative to the inverted pendulum body away from the ground surface to position a center of mass of the robot substantially over the drive wheel. The method also includes moving from the sitting pose to a standing pose by altering a length of the at least one leg.

TECHNICAL FIELD

This disclosure relates to mobile robots moving from sitting positionsto standing positions.

BACKGROUND

Robots currently perform tasks in various working environments, such asfactories, storage facilities, office buildings, and hospitals.Moreover, robots are sometimes designed with large stationary ormoveable bases that allow the robot to maintain an upright positionwhile performing tasks that involve lifting and handling heavy objectswithout tipping over. The large bases, however, tend to be heavy, large,slow, and cumbersome, severely limiting mobility and being inappropriatefor use in areas with tight footprints. While other robots with smallerand lighter bases or mobility platforms are more maneuverable than therobots with large bases, they are typically not practical for carryingheavy objects due to instabilities resulting from shifts in center ofmass and changes in momentum as the objects are picked up and put down.

SUMMARY

One aspect of the disclosure provides a method for operating a robot.The robot includes an inverted pendulum body having first and second endportions. The robot further includes a counter-balance body, at leastone arm having proximal and distal ends, and at least one leg havingfirst and second ends. The counter-balance body is disposed on theinverted pendulum body and configured to move relative to the invertedpendulum body, while the first end of the at least one leg isprismatically coupled to the second end portion of the inverted pendulumbody. The counter-balance body may be disposed on the first end portionof the inverted pendulum body or the second end portion of the invertedpendulum body. The proximal end of the at least one arm is connected tothe inverted pendulum body and configured to move relative to theinverted pendulum body. The robot further includes a drive wheelrotatably coupled to the second end of the at least one leg. The methodincludes assuming a resting pose of the robot on a surface. In theresting pose, the drive wheel and the at least one leg support the roboton the surface, the at least one leg is in a corresponding retractedposition at least partially adjacent the inverted pendulum body. Themethod also includes moving from the resting pose to a sitting pose ofthe robot by moving the counter-balance body relative to the invertedpendulum body away from the ground surface to position a center of massof the robot substantially over the drive wheel. The method alsoincludes moving from the sitting pose to a standing pose of the robot byaltering a length of the at least one leg. The at least one leg includesa variable length between the first and second ends of the at least oneleg.

Implementations of the disclosure may include one or more of thefollowing optional features. In some implementations, the method furtherincludes moving the counter-balance body relative to the invertedpendulum body to maintain the standing pose. Optionally, the method mayalso include moving the at least one arm to an extended position awayfrom the inverted pendulum body to maintain the standing pose.

In some examples, when moving from the resting pose to the sitting pose,the method includes at least one of: rotating the at least one leg aboutthe first end of the at least one leg from the retracted position to adeployed position, causing the inverted pendulum body to move upwardaway from the surface; or moving the counter-balance body relative tothe inverted pendulum body and into contact with the ground surface,causing the inverted pendulum body to move upward away from the surface.The at least one leg may include a right leg having first and secondends and a left leg having first and second ends. The first end of theright leg is prismatically coupled to the second end portion of theinverted pendulum body. The right leg has a right drive wheel rotatablycoupled to the second end of the right leg. The first end of the leftleg is prismatically coupled to the second end portion of the invertedpendulum body. The left leg has a left drive wheel rotatably coupled tothe second end of the left leg. Additionally, the at least one leg mayoptionally include an upper portion extending between the first endprismatically coupled to the second end portion of the inverted pendulumbody and a knee joint, and a lower portion extending between the kneejoint and the second end rotatably coupled to the drive wheel, whereinthe lower portion is rotatably coupled to the knee joint. In somescenarios, altering the length of the at least one leg includes alteringthe lower portion about the knee joint relative to the upper portion.

The counter-balance body may be rotatably coupled to one of the firstend portion of the inverted pendulum body or the second end portion ofthe inverted pendulum body. The proximal end of the at least one arm maybe rotatably coupled to one of the first end portion of the invertedpendulum body or the second end portion of the inverted pendulum body.

Another aspect of the disclosure provides a robot including an invertedpendulum body having first and second end portions, a counter-balancebody, at least one arm having proximal and distal ends, and at least oneleg having first and second ends. The counter-balance body is disposedon the inverted pendulum body and configured to move relative to theinverted pendulum body, while the first end of the at least one leg isprismatically coupled to the second end portion of the inverted pendulumbody. The counter-balance body may be disposed on the first end portionof the inverted pendulum body or the second end portion of the invertedpendulum body. The proximal end of the at least one arm is connected tothe inverted pendulum body and configured to move relative to theinverted pendulum body. The robot further includes a drive wheelrotatably coupled to the second end of the at least one leg. The robotfurther includes a controller in communication with the counter-balancebody, the at least one leg, and the drive wheel. The controller isconfigured to perform operations that include assuming a resting pose ofthe robot on a surface, wherein, in the resting pose, the drive wheeland the at least one leg support the robot on the surface, the at leastone leg is in a corresponding retracted position at least partiallyadjacent the inverted pendulum body. The operations further includemoving from the resting pose to a sitting pose of the robot by movingthe counter-balance body relative to the inverted pendulum body awayfrom the ground surface to position a center of mass of the robotsubstantially over the drive wheel. The operations further includemoving from the sitting pose to a standing pose of the robot by alteringa length of the at least one leg, the at least one leg having a variablelength between the first and second ends of the at least one leg.

This aspect may include one or more of the following optional features.In some implementations, the operations further include moving thecounter-balance body relative to the inverted pendulum body to maintainthe standing pose. Optionally, the operations may also include movingthe at least one arm to an extended position away from the invertedpendulum body to maintain the standing pose.

In some examples, when moving from the resting pose to the sitting pose,the operations further include at least one of: rotating the at leastone leg about the first end of the at least one leg from the retractedposition to a deployed position, causing the inverted pendulum body tomove upward away from the surface; or moving the counter-balance bodyrelative to the inverted pendulum body and into contact with the groundsurface, causing the inverted pendulum body to move upward away from thesurface. The at least one leg may include a right leg having first andsecond ends and a left leg having first and second ends. The first endof the right leg is prismatically coupled to the second end portion ofthe inverted pendulum body. The right leg has a right drive wheelrotatably coupled to the second end of the right leg. The first end ofthe left leg is prismatically coupled to the second end portion of theinverted pendulum body. The left leg has a left drive wheel rotatablycoupled to the second end of the left leg. Additionally, the at leastone leg may optionally include an upper portion extending between thefirst end prismatically coupled to the second end portion of theinverted pendulum body and a knee joint, and a lower portion extendingbetween the knee joint and the second end rotatably coupled to the drivewheel, wherein the lower portion is rotatably coupled to the knee joint.In some scenarios, altering the length of the at least one leg includesaltering the lower portion about the knee joint relative to the upperportion.

The counter-balance body may be rotatably coupled to one of the firstend portion of the inverted pendulum body or the second end portion ofthe inverted pendulum body. The proximal end of the at least one arm maybe rotatably coupled to one of the first end portion of the invertedpendulum body or the second end portion of the inverted pendulum body.

The details of one or more implementations of the disclosure are setforth in the accompanying drawings and the description below. Otheraspects, features, and advantages will be apparent from the descriptionand drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1A is schematic view of an example robot.

FIGS. 1B and 1C are schematic views of the robot of FIG. 1A showing acounter-balance body moving relative to an inverted pendulum body of therobot.

FIGS. 1D and 1E are schematic vies showing an example robot having twoappendages disposed on an inverted pendulum body.

FIG. 1F is a schematic view of an example robot assuming a resting pose.

FIG. 1G is a schematic view of the robot of FIG. 1F moving from theresting pose to a sitting pose.

FIG. 1H is a schematic view of the robot of FIG. 1F moving from asitting pose to a standing pose.

FIGS. 2 and 3 are schematics view of example robots.

FIG. 4 is a flow chart of an example arrangement of operations for amethod of operating a robot.

FIG. 5 is a schematic view of an example computing device that may beused to implement the systems and methods described herein.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Mobile robots currently perform tasks in various working environments,such as factories, storage facilities, office buildings, and hospitals.When not operating, robots may be stowed away and powered down while notin use. In this scenario, a robot may assume a resting pose thatminimizes an area occupied by the robot and allows the robot to powerdown to conserve energy and/or permit charging of an energy storagedevice powering the robot. Once the hours of operation for the workingenvironment resume, the robot needs to transition from the resting poseand to an operating pose without losing balance and tipping over.Implementations herein are directed toward moving a robot from a restingpose to a sitting pose by moving a torso (e.g., inverted pendulum body)of the robot upward away from a surface to position a center of mass ofthe robot over drive wheels of the robot and subsequently moving fromthe sitting pose to a standing pose by moving at least one arm of therobot from a corresponding retracted deposition to an extended positionaway from the torso to cause the center of mass of the robot to balanceover the drive wheels.

Referring to FIGS. 1A-1E, in some implementations, a robot 100, 100 aincludes an inverted pendulum body (IPB) 200, a counter-balance body 300disposed on the IPB 200, at least one leg 400 having a first end 410coupled to the IPB 200 and a second end 420, and a drive wheel 500rotatably coupled to the second end 420 of the at least one leg 400. Therobot 100 has a vertical gravitational axis V_(g) (FIGS. 1B and 1C)along a direction of gravity, and a center of mass CM, which is a pointwhere the robot 100 has a zero sum distribution of mass. The robot 100further has a pose P based on the CM relative to the verticalgravitational axis V_(g) to define a particular attitude or stanceassumed by the robot 100. The attitude of the robot 100 can be definedby an orientation or an angular position of an object in space.

The IPB 200 has first and second end portions 210, 220 and may beinterchangeably referred to as a torso 200 for the robot 100. Forinstance, the IPB 200 may define a length between a first end 212associated with the first end portion 210 and a second end 222associated with the second end portion 220. In some examples, a point ofdelineation separating the first and second end portions 210, 220 is ata midpoint between the first end 212 and the second end 222, so that thefirst end portion 210 encompasses 50-percent of the length of the IPB200 and the second end portion 220 encompasses the remaining 50-percentof the length of the IPB 200. In other examples, the point ofdelineation separating the first and second end portions 210, 220 of theIPB 200 is closer to one of the first end 212 or the second end 222 sothat one of the first end portion 210 or the second end portion 220extends along a larger portion of the length of the IPB 200 than theother one of the first end portion 210 or the second end portion 220.For instance, the first end portion 210 extending from the first end 212may encompass 90-, 80-, 70-, 60-, 40-, 30-, 20-, 10-percent of thelength of the IPB 200 while the second end portion 220 extending fromthe second end 222 may encompass the remaining 10-, 20-, 30-, 60-, 70-,80-, 90-percent of the length of the IPB 200.

In some implementations, the counter-balance body 300 is disposed on thefirst end portion 210 of the IPB 200 and configured to move relative tothe IPB 200. The counter-balance body 300 may be interchangeablyreferred to as a tail 300. A back joint bk, 350 may rotatably couple thecounter-balance body 300 to the first end portion 210 of the IPB 200 toallow the counter-balance body 300 to rotate relative to the IPB 200. Inthe example shown, the back joint bk, 350 supports the counter-balancebody 300 to allow the counter-balance body 300 to move/pitch around alateral axis (y-axis) that extends perpendicular to the gravitationalvertical axis V_(g) and a fore-aft axis (x-axis) of the robot 100. Thefore-aft axis (x-axis) may denote a present direction of travel by therobot 100.

Referring to FIG. 1B, the counter-balance body 300 has a longitudinalaxis L_(CBB) extending from the back joint bk, 350 and is configured topivot at the back joint bk, 350 to move/pitch around the lateral axis(y-axis) relative to the IPB 200 (in both the clockwise andcounter-clockwise directions relative to the view shown in FIG. 1B).Accordingly, the back joint bk, 350 may be referred to as a pitch joint.The pose P of the robot 100 may be defined at least in part by arotational angle θ_(CBB) of the counter-balance body 300 relative to thevertical gravitational axis V_(g). Moreover, the counter-balance body300 may generate/impart a moment M_(CBB) (rotational force) at the backjoint bk, 350 based on the rotational angle θ_(CBB) of thecounter-balance body 300 relative to the vertical gravitational axisV_(g). Thus, movement by the counter-balance body 300 relative to theIPB 200 alters the pose P of the robot 100 by moving the CM of the robot100 relative to the vertical gravitational axis V_(g). A rotationalactuator 352 (e.g., a tail actuator) may be positioned at or near theback joint bk, 350 for controlling movement by the counter-balance body300 (e.g., tail) about the lateral axis (y-axis). The rotationalactuator 352 may include an electric motor, electro-hydraulic servo,piezo-electric actuator, solenoid actuator, pneumatic actuator, or otheractuator technology suitable for accurately effecting movement of thecounter-balance body 300 relative to the IPB 200.

The rotational movement by the counter-balance body 300 relative to theIPB 200 alters the pose P of the robot 100 for balancing and maintainingthe robot 100 in an upright position. For instance, similar to rotationby a flywheel in a conventional inverted pendulum flywheel, rotation bythe counter-balance body 300 relative to the gravitational vertical axisV_(g) generates/imparts the moment M_(CBB) at the back joint bk, 350 toalter the pose P of the robot 100. By moving the counter-balance body300 relative to the IPB 200 to alter the pose P of the robot 100, the CMof the robot 100 moves relative to the gravitational vertical axis Vg tobalance and maintain the robot 100 in the upright position in scenarioswhen the robot 100 is moving and/or carrying a load. However, bycontrast to the flywheel portion in the conventional inverted pendulumflywheel that has a mass centered at the moment point, thecounter-balance body 300 includes a corresponding mass that is offsetfrom the moment M_(CBB) imparted at the back joint bk, 350. In someconfigurations, a gyroscope disposed at the back joint bk, 350 could beused in lieu of the counter-balance body 300 to spin and impart themoment M_(CBB) (rotational force) for balancing and maintaining therobot 100 in the upright position.

Referring to FIG. 1C, the counter-balance body 300 may rotate (e.g.,pitch) about the back joint bk, 350 in both the clockwise andcounter-clockwise directions (e.g., about the y-axis in the “pitchdirection” relative to the view shown in FIG. 1C) to create anoscillating (e.g., wagging) movement. For example, the counter-balancebody 300 may move/pitch about the lateral axis (y-axis) in a firstdirection (e.g., counter-clockwise direction) from a first position(solid lines) associated with longitudinal axis L_(CBB1), having a firstrotational angle θ_(CBB1) relative to the vertical gravitation axisV_(g), to a second position (dashed lines) associated with longitudinalaxis L_(CBB2), having a second rotational angle θ_(CBB2) relative to thevertical gravitation axis V_(g). Movement by the counter-balance body300 relative to IPB 200 from the first position to the second positioncauses the CM of the robot 100 to shift and lower toward the groundsurface 12.

The counter-balance body 300 may also move/pitch about the lateral axis(y-axis) in an opposite second direction (e.g., clockwise direction)from the second position (dashed lines) back to the first position oranother position either before or beyond the first position. Movement bythe counter-balance body 300 relative to the IPB 200 in the seconddirection away from the second position (dashed lines) causes the CM ofthe robot 100 to shift and raise away from the ground surface 12. Thus,increasing the rotational angle θ_(CBB) of the counter-balance body 300relative to the vertical gravitational axis V_(g) may cause the CM ofthe robot 100 to lower toward the ground surface 12, while decreasingthe rotational angle θ_(CBB) of the counter-balance body 300 relative tothe vertical gravitational axis V_(g) may cause the CM of the robot 100to raise away from the ground surface 12 and/or shift forward orbackward relative to the point of contact between the drive wheels 500and the ground surface 12. In some examples, the longitudinal axisL_(CBB) of the counter-balance body 300 is coincident with the verticalgravitational axis V_(g). The counter-balance body 300 may oscillatebetween movements in the first and second directions to create thewagging movement. The rotational velocity of the counter-balance body300 when moving relative to the IPB 200 may be constant or changing(accelerating or decelerating) depending upon how quickly the pose P ofthe robot 100 needs to be altered for dynamically balancing the robot100.

The first position (solid lines) associated with L_(CBB1) and the secondposition (dashed lines) associated with L_(CBB1) of the counter-balancebody 300 of FIG. 1C are depicted as exemplary positions only, and arenot intended to represent a complete range of motion of thecounter-balance body 300 relative to the IPB 200. For instance, in otherexamples, the counter-balance body 300 may move/pitch around the lateralaxis (y-axis) in the first direction (e.g., counter-clockwise direction)to positions having rotational angles θ_(CBB) greater than the secondrotational angle θ_(CBB2) associated with the second position (dashedlines) and/or in the second direction (e.g., clockwise direction) topositions having rotational angles θ_(CBB) less than the firstrotational angle θ_(CBB1) associated with the first position (solidlines). Moreover, the counter-balance body 300 may move/pitch around thelateral axis (y-axis) relative to the IPB 200 at any position betweenthe first position (solid lines) and the second position (dashed lines)shown in FIG. 1C.

Referring back to FIGS. 1A and 1B, the at least one leg 400 includes aright leg 400 a and a left leg 400 b. The right leg 400 a includes acorresponding first end 410, 410 a rotatably coupled to the second endportion 220 of the IPB 200 and a corresponding second end 420, 420 arotatably coupled to a corresponding right drive wheel 500, 500 a. Aright hip joint 412 may rotatably couple the first end 410 a of theright leg 400 a to the second end portion 220 of the IPB 200 to allow atleast a portion of the right leg 400 a to move/pitch around the lateralaxis (y-axis) relative to the IPB 200. A leg actuator 413 associatedwith the hip joint 412 may cause an upper portion 401, 401 a of theright leg 400 a to move/pitch around the lateral axis (y-axis) relativeto the IPB 200. In some configurations, the right leg 400 a includes thecorresponding upper portion 401, 401 a and a corresponding lower portion402, 402 a. The upper portion 401 a may extend from the hip joint 412 atthe first end 410 a to a corresponding knee joint 414 and the lowerportion 402 a may extend from the knee joint 414 to the second end 420a.

The right leg 400 a may include a corresponding right ankle joint 422,422 a configured to rotatably couple the right drive wheel 500 a to thesecond end 420 a of the right leg 400 a. Here, the right ankle joint 422a may be associated with a wheel axle coupled for common rotation withthe right drive wheel 500 a and extending substantially parallel to thelateral axis (y-axis). The right drive wheel 500 a may include acorresponding torque actuator (drive motor) 510, 510 a configured toapply a corresponding axle torque T_(a) (FIG. 1B) for rotating the rightdrive wheel 500 a about the ankle joint 422 a to move the right drivewheel 500 a across the ground surface 12 along the fore-aft axis(x-axis). For instance, the axle torque T_(a) may cause the right drivewheel 500 a to rotate in a first direction for moving the robot 100 in aforward direction along the fore-aft axis (x-axis) and/or cause theright drive wheel 500 a to rotate in an opposite second direction formoving the robot 100 in a rearward direction along the fore-aft axis(x-axis).

The left leg 400 b similarly includes a corresponding first end 410, 410b rotatably coupled to the second portion 220 of the IPB 200 and acorresponding second end 420, 420 b rotatably coupled to a correspondingleft drive wheel 500, 500 b. A corresponding hip joint 412 may rotatablycouple the first end 410 b of the left leg 400 b to the second endportion 220 of the IPB 200 to allow at least a portion of the left leg400 b to move/pitch around the lateral axis (y-axis) relative to the IPB200. A corresponding leg actuator 413 associated with the left hip joint412 may cause a corresponding upper portion 401, 401 b of the left leg400 b to move/pitch around the lateral axis (y-axis) relative to the IPB200. As with the right leg 400 a, the left leg 400 b may include thecorresponding upper portion 401, 401 b and a corresponding lower portion402, 402 b. The upper portion 401 b may extend from the hip joint 412 atthe first end 410 b to a corresponding knee joint 414 and the lowerportion 402 b may extend from the knee joint 414 to the second end 420b.

The left leg 400 b may include a corresponding left ankle joint 422, 422b configured to rotatably couple the left drive wheel 500 b to thesecond end 420 b of the left leg 400 b. Here, the left ankle joint 422 bmay be associated with a wheel axle coupled for common rotation with theleft drive wheel 500 b and extending substantially parallel to thelateral axis (y-axis). As with the right drive wheel 500 a, the leftdrive wheel 500 b may include a corresponding torque actuator (e.g.,drive motor) 510 b configured to apply a corresponding axle torque T_(a)for rotating the left drive wheel 500 b about the ankle joint 422 b tomove the left drive wheel 500 b across the ground surface 12 along thefore-aft axis (x-axis). For instance, the axle torque T_(a) may causethe left drive wheel 500 b to rotate in the first direction for movingthe robot 100 in the forward direction along the fore-aft axis (x-axis)and/or cause the left drive wheel 500 b to rotate in the opposite seconddirection for moving the robot 100 in the rearward direction along thefore-aft axis (x-axis).

The corresponding axle torques T_(a) applied to each of the drive wheels500 a, 500 b may vary to maneuver the robot 100 across the groundsurface 12. For instance, an axle torque T_(aR) applied to the rightdrive wheel 500 a that is greater than an axle torque T_(aL) applied tothe left drive wheel 500 b may cause the robot 100 to turn to the left,while applying a greater axle torque T_(a) to the left drive wheel 500 bthan to the right drive wheel 500 a may cause the robot 100 to turn tothe right. Similarly, applying substantially the same magnitude of axletorque T_(a) to each of the drive wheels 500 a, 500 b may cause therobot 100 to move substantially straight across the ground surface 12 ineither the forward or reverse directions. The magnitude of axle torqueT_(a) applied to each of the drive wheels 500 a, 500 b also controlsvelocity of the robot 100 along the fore-aft axis (x-axis). Optionally,the drive wheels 500 a, 500 b may rotate in opposite directions to allowthe robot 100 to change orientation by swiveling on the ground surface12. Thus, each axle torque T_(a) may be applied to the correspondingdrive wheel 500 independent of the axle torque T_(a) (if any) applied tothe other drive wheel 500.

FIG. 1B shows the right ankle joint 422 a (e.g., wheel axle) rotatablycoupling the right drive wheel 500 a to the second end 420 a of theright leg 400 a and exerting an axle force F_(a). The left ankle joint422 b similarly exerts a corresponding axle force F_(a) (not shown). Theaxle forces F_(a) may assist in adjusting the pose P of the robot 100and/or be controlled for balancing the robot 100. The axle force F_(a)is generated based on a magnitude of horizontal force F_(x) exerted onthe corresponding ankle joint 422 along the fore-aft axis (x-axis), amagnitude of vertical force F_(z) exerted on the corresponding anklejoint 422 along a vertical axis (z-axis), and the magnitude of axletorque T_(a) applied by the corresponding torque actuator 510 to thecorrespond corresponding wheel 500.

In some implementations, each leg 400 has a variable length extendingbetween the first and second ends 410, 420 of the corresponding leg 400.For instance, the lower portion 402 of each leg 400 may rotate relativeto the corresponding upper portion 401 about the knee joint 414 toenable the leg 400 to retract and expand. Referring to FIG. 1B, rotationby the lower portion 402 about the knee joint 414 relative to the upperportion 401 in the counter-clockwise direction may cause the leg 400 toretract. At the same time, the upper portion 401 may rotate about thehip joint 412 relative to the IPB 200 in the clockwise direction tocause the leg 400 to retract. Similarly, rotation by the lower portion402 about the knee joint 414 relative to the upper portion 401 in theclockwise direction and/or rotation by the upper portion 401 about thehip joint 412 relative to the IPB 200 in the counter-clockwise directionmay cause the leg 400 to expand. As used herein, retracting the lengthof the leg 400 may cause a height of the corresponding leg 400 withrespect to the ground surface 12 to reduce while expanding the length ofthe leg 400 may cause the height of the corresponding leg 400 withrespect to the ground surface 12 to increase. In some examples, theheight of the leg 400 is defined as a distance along the vertical axis(z-axis) between the ground surface 12 (or the corresponding ankle joint422) supporting the robot 100 and the corresponding knee joint 414. Inother examples, the height of the leg 400 is defined as a distance alongthe vertical axis (z-axis) between the ground surface 12 (or thecorresponding ankle joint 422) and the corresponding hip joint 412rotatably coupling the corresponding first end 410 of the leg 400 to thesecond end portion 220 of the IPB 200.

In some implementations, retracting the length of both legs 400 causesan overall height of the robot 100 to decrease while expanding thelength of both legs 400 causes the overall height of the robot 100 toincrease. For instance, the robot 100 may need to lower, for example bycrouching, to clear obstacles such as, without limitation, doorways,overhangs, light fixtures, or ceilings. It may also be desirable tolower the robot 100 to shift the CM downward to increase stability incertain scenarios. On the other hand, an increase to the overall heightof the robot 100 may be required to reach or place a target object on ashelf. Altering the height of the robot 100 simultaneously alters thepose P, and may cause substantive shifts in the CM of the robot 100 thatrequire actuation of the counter-balance body 300 to move relative tothe IPB 200 to maintain balance of the robot 100. The heights of thelegs 400 may be dynamically controlled to target heights to assist withturning maneuvers as the robot 100 traverses along the ground surface12. For instance, dynamically adjusting the height of each leg 400independently from one another may allow the robot 100 to lean and bankinto turns, thereby enhancing maneuverability of the robot 100 whiletraversing across the ground surface 12.

Referring back to FIG. 1A, retracting and expanding the length of eachleg 400 may be controlled via a corresponding belt drive actuator 415configured to drive a belt 417 coupled for common rotation with thecorresponding knee joint 414. For instance, each leg 400 may include acorresponding belt drive actuator 415 disposed at or near thecorresponding hip joint 412 and the corresponding belt 417 may have afirst end coupled to the actuator 415 and a second end coupled to theknee joint 414. Here, the belt drive actuator 415 may rotate thecorresponding upper portion 401 relative to the IPB 200 and drive thebelt 417 in one direction to prismatically extend/expand the length ofthe leg 400 by causing the corresponding lower portion 402 to rotateabout the knee joint 414 relative to the upper portion 401 in theclockwise direction (relative to the view of FIG. 1A). On the otherhand, the belt drive actuator 415 may drive the belt 417 in the oppositedirection to prismatically retract the length of the leg 400 by causingthe corresponding lower portion 402 to rotate about the knee joint 414relative to the upper portion 401 in the counter-clockwise direction(relative to the view of FIG. 1A). The belt 417 may include a continuousloop extending along the upper portion 402 of each leg 400 or mayinclude terminal ends each connected to a respective one of the beltdrive actuator 415 or the knee joint 414. The belt drive actuator 415may include a ball-screw type actuator. In some examples, the belt driveactuator 415 and belt 417 employs a 2:1 belt coupling so that the lowerportion 402 rotates about the knee joint 414 relative to the upperportion 401 at twice the angle of the rotation of the upper portion 401about the hip joint 415, thereby causing the second end 420 of the leg400 to move on a straight line equivalent to a linear rail. Optionally,instead of a two-link leg (e.g., upper and lower portions 401, 402), theat least one leg 400 may include a single link that prismaticallyextends/retracts linearly such that the second end 420 of the leg 400prismatically moves away/toward the IPB 200 along a linear rail.Accordingly, the at least one leg 400 includes a prismatic leg havingthe first end 410 prismatically coupled to the second end portion 220 ofthe IPB 200 and configured to provide prismatic extension/retraction viaactuation of the belt drive actuator 415 to drive the belt 417 incorresponding first or second directions. In other configurations, theknee joint 414 may employ a corresponding rotational actuator forrotating the lower portion 402 relative to the upper portion 401 in lieuof the belt 417 driven by the belt drive actuator 415 disposed at ornear the hip joint 412.

In some implementations, the robot 100 further includes one or moreappendages, such as an articulated arm 600 disposed on the IPB 200 andconfigured to move relative to the IPB 200. The articulated arm 600 mayhave five-degrees of freedom. Moreover, the articulated arm 600 may beinterchangeably referred to as a manipulator arm, a manipulator head, orsimply an appendage. While FIGS. 1A-1E show the articulated arm 600disposed on the second end portion 220 of the IPB 200, the articulatedarm 600 may be disposed on the first end portion 210 of the IPB 200 inother configurations. The articulated arm 600 extends between a proximalfirst end 610 and a distal second end 620. Referring to FIG. 1B, thefirst end 610 connects to the IPB 200 at a first articulated arm jointJ₀ 650. The first articulated arm joint J₀ 650 may be disposed betweenthe left and right hip joints 412 to center the articulated arm 600between the left and right sides of the IPB 200. In some examples, thefirst articulated arm joint J₀ 650 rotatably couples the proximal firstend 610 of the articulated arm 600 to the IPB 200 to enable themanipulator arm 600 to rotate relative to the IPB 200. For instance, thearticulated arm 600 may move/pitch about the lateral axis (y-axis)relative to the IPB 200. A rotational actuator 652 (e.g., manipulatorhead actuator) may be positioned at or near the first articulated armjoint J₀ 650 for rotating the articulated arm 600 (e.g., manipulatorhead) about the lateral axis (y-axis). The rotational actuator 652 mayinclude an electric motor, electro-hydraulic servo, piezo-electricactuator, solenoid actuator, pneumatic actuator, or other actuatortechnology suitable for accurately effecting movement of the articulatedarm 600.

In some scenarios, the articulated arm 600 rotates at the firstarticulated arm joint J₀ 650 about the lateral axis (y-axis) relative tothe IPB 200 in the direction of gravity (e.g., in the clockwisedirection relative to the view of FIG. 1B) to lower the CM of the robot100. The robot 100 may lower the CM closer to the ground surface whileexecuting turning maneuvers. The counter-balance body 300 may alsosimultaneously rotate about the lateral axis (y-axis) relative to theIPB 200 in the direction of gravity (e.g., in the counter-clockwisedirection relative to the view of FIG. 1B) to assist in lowering the CMof the robot 100. Here, the articulated arm 600 and the counter-balancebody 300 may cancel out any shifting in the CM of the robot 100 in theforward or rearward direction along the fore-aft axis (x-axis), whilestill effectuating the CM of the robot 100 shift downward closer to theground surface 12.

An end effector 700 may be disposed on the distal second end 620 of themanipulator arm 600. The end effector 700 may include one or moreactuators 702 (grippers) that may be configured to grip and manipulate atarget object. Additionally or alternatively, the end effector 700 mayemploy a vacuum device and/or one or more suction cups 704 (FIG. 1A)configured to apply suction for gripping and holding a target objectwhen the end effector 700 is positioned on the target object. FIG. 1Bshows the end effector 700 exerting a corresponding end effector forceF_(ee). The manipulator arm 600 and/or the end effector 700 may includeperception sensors for identifying objects in relation to the robot 100.

The articulated arm 600 may include two or more portions. In theexamples shown in FIGS. 1A-1C, the articulated arm 600 includes a firstportion 601, a second portion 602, and a third portion 603. The firstportion 601 may extend between the proximal first end 610 connected tothe IPB 200 via the first articulated arm joint J₀ 650 and a secondarticulated arm joint J₁ 660. The second portion 602 may extend betweenthe second articulated arm joint J₁ 660 and a third articulated armjoint J₂ 670. The third portion 603 may extend between the thirdarticulated arm joint J₂ 670 and the distal second end 620 of thearticulated arm 600 that connects to the end effector 700. As with thefirst articulated arm joint J₀ 650, the second and third articulated armjoints J₁ 660, J₂ 670 may each be associated with a correspondingactuator 662, 672 configured to move each portion 602, 603 relative toone another and relative to the IPB 200. For instance, the rotationalactuator 652 associated with the first articulated arm joint J₀ 650 maycause the first portion 601 of the articulated arm 600 to move/pitchabout the lateral axis (y-axis) relative to the IPB 200. As the secondand third portions 602, 603 of the articulated arm 600 are connected tothe first portion 601 via the second and third articulated arm joints J₁660, J₂ 670, the rotation by the first portion 601 about the lateralaxis (y-axis) at the first articulated arm joint J₀ 650 may also causethe second and third portions 602, 603 to simultaneously move relativeto the IPB 200.

Similarly, the rotational actuator 662 associated with the secondarticulated arm joint J₁ 660 may cause the second portion 602 of thearticulated arm 600 to move/pitch about the lateral axis (y-axis)relative to both the IPB 200 and the first portion 601 of thearticulated arm 600. Moreover, the rotational actuator 672 associatedwith the third articulated arm joint J₂ 670 may cause the third portion603 of the articulated arm 600 to move/pitch about the lateral axis(y-axis) relative to the IPB 200 and the first and second portions 601,602 of the articulated arm 600. The actuators 652, 662, 672 may becontrolled independently of one another to move the correspondingportions 601, 602, 603 alone or in concert for positioning the endeffector 700 on a target object and/or altering the pose P of the robot100.

In some configurations, the counter-balance body 300 corresponds to afirst counter-balance body 300 disposed on the first end portion 210 ofthe IPB 200 and the articulated arm 600 corresponds to a secondcounter-balance body 600 disposed on the second end portion 210 of theIPB 200. Similar to the first counter-balance body 300 discussed above,the articulated arm 600 may be configured to move relative to the IPB200 for altering the pose P of the robot 100 by moving the CM of therobot 100 relative to the vertical gravitational axis V_(g). Forinstance, the articulated arm 600 may generate/impart a moment M_(AA)(rotational force) (FIG. 1B) at the first articulated arm joint J₀ basedon a rotational angle of the articulated arm 600 relative to thevertical gravitational axis V_(g). Thus, the articulated arm 600 maymove relative to the IPB 200 to alter the pose P of the robot 100 bymoving the CM of the robot 100 relative to the vertical gravitationalaxis V_(g). In some configurations, a gyroscope could be disposed at thefirst articulated arm joint J₀ to impart the moment M_(AA) (rotationalforce) for maintaining balance of the robot 100 in the upright position.

Referring to FIGS. 1D and 1E, in some implementations, the robot 100includes left and right appendages (e.g., two articulated arms) 600 a,600 b each disposed on the IPB 200 and configured to move relative tothe IPB 200. The appendages 600 a, 600 b may be disposed on the firstend portion 210 of the IPB 200 or the second end portion 220 of the IPB200. As with the single articulated arm 600, each appendage 600 a, 600 bextends between a respective proximal first end 610 and a respectivedistal second end 620, and the first end 610 connects to the IPB 200 ata corresponding first articulated arm joint J₀ 650. Here, each firstarticulated arm joint J₀ 650 may be disposed on an opposite side of theIPB 200. Each appendage 600 a, 600 b may also include the one or morerespective portions 601, 602, 603 connected by respective articulatedarm joints J₁ 660, J₂ 670 as discussed above with reference to thesingle articulated arm 600 of FIGS. 1A-1C. Accordingly, each appendage600 a, 600 b may be controlled to operate in substantially the samemanner as the single articulated arm 600.

FIG. 1D shows the appendages 600 a, 600 b each having the correspondingfirst and second portions 601, 602 extending substantially parallel toone another and away from the IPB 200, while the corresponding thirdportion 603 extends substantially perpendicular to the first and secondportions 601, 602 to point the corresponding distal second end 620downward toward the ground surface 12. Here, the position of theappendages 600 a, 600 b may align the end effectors 700 and associatedactuators 702 to grasp and carry an object. The appendages 600 a, 600 bcould also point downward as shown in FIG. 1D for adjusting the momentof inertia about the vertical z-axis to assist with turning maneuvers.FIG. 1E shows the appendages 600 a, 600 b fully extended/deployedoutward from the IPB 200 with each appendage 600 a, 600 b having thecorresponding portions 601, 602, 603 substantially aligned with oneanother and extending substantially parallel to the ground surface 12.In some examples, the robot 100 may fully extend one or both ofappendages 600 a, 600 b as shown in FIG. 1E for adjusting the moment ofinertia about the vertical z-axis.

Referring back to FIG. 1C, the robot 100 includes a control system 10configured to monitor and control operation of the robot 100. In someimplementations, the robot 100 is configured to operate autonomouslyand/or semi-autonomously. However, a user may also operate the robot byproviding commands/directions to the robot 100. In the example shown,the control system 10 includes a controller 102 (e.g., data processinghardware), memory hardware 104, an inertial measurement unit 106,actuators 108, one or more sensors 110, and one or more power sources112. The control system 10 is not limited to the components shown, andmay include additional or less components without departing from thescope of the present disclosure. The components may communicate viawireless or wired connections and may be distributed across multiplelocations of the robot 100. In some configurations, the control system10 interfaces with a remote computing device and/or a user. Forinstance, the control system 10 may include various components forcommunicating with the robot 100, such as a joystick, buttons, wiredcommunication ports, and/or wireless communication ports for receivinginputs from the remote computing device and/or user, and providingfeedback to the remote computing device and/or user.

The controller 102 corresponds to data processing hardware that mayinclude one or more general purpose processors, digital signalprocessors, and/or application specific integrated circuits (ASICs). Insome implementations, the controller 102 is a purpose-built embeddeddevice configured to perform specific operations with one or moresubsystems of the robot 100. The memory hardware 104 is in communicationwith the controller 102 and may include one or more non-transitorycomputer-readable storage media such as volatile and/or non-volatilestorage components. For instance, the memory hardware 104 may beassociated with one or more physical devices in communication with oneanother and may include optical, magnetic, organic, or other types ofmemory or storage. The memory hardware 104 is configured to, inter alia,to store instructions (e.g., computer-readable program instructions),that when executed by the controller 102, cause the controller toperform numerous operations, such as, without limitation, altering thepose P of the robot 100 for maintaining balance, maneuvering the robot100 across the ground surface 12, transporting objects, and/or executinga sit-to-stand routine. The controller 102 may directly or indirectlyinteract with the inertial measurement unit 106, the actuators 108, thesensor(s) 110, and the power source(s) 112 for monitoring andcontrolling operation of the robot 100.

The inertial measurement unit 106 is configured to measure an inertialmeasurement indicative of a movement of the robot 100 that results in achange to the pose P of the robot 100. The inertial measurement measuredby the inertial measurement unit 106 may indicate a translation or shiftof the CM of the robot 100 relative to the vertical gravitational axisV_(g). The translation or shift of the CM may occur along one or more ofthe fore-aft axis (x-axis), the lateral axis (y-axis), or the verticalaxis (z-axis). For instance, the inertial measurement unit 106 maydetect and measure an acceleration, a tilt, a roll, a pitch, a rotation,or yaw of the robot 100, as the inertial measurement, using an initialpose P as an inertial reference frame. To detect and to measure, theinertial measurement unit 106 may include at least one of a tri-axialaccelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. Thetri-axial accelerometer includes circuitry to sense the movement of therobot 100 between poses along a straight line or an axis, such as aposition and an orientation of the inertial measurement unit 106. Insome examples, the accelerometer may use a mass-spring system or avibration system configured to determine an acceleration correspondingto a displacement of a mass in the mass-spring system or a stressrelated to a vibration in the vibration system. The inertial measurementunit 106 may also include a gyroscope, such as the tri-axial gyroscope,to measure a rate of rotation about a defined axis. The gyroscope isconfigured to sense rotation of the inertial measurement unit 106 suchthat a sensed rotation is a portion of the inertial measurement outputto the controller 102. The controller 102 receives the inertialmeasurement of the inertial measurement unit 106 and determines shiftsin the CM of the robot 100 relative to the vertical gravitational axisV_(g). Thus, the gyroscope senses rotations of the robot 100 as therobot 100 moves with the gyroscope. The inertial measurement unit 106may include more than one of the tri-axial accelerometer, the tri-axialmagnetometer, or the tri-axial gyroscope to increase accuracy of theinertial measurement unit 106. In some examples, the inertialmeasurement unit 106 produces three dimensional measurements of aspecific force and an angular rate. The inertial measurement unit 106may also include a microprocessor.

The controller 102 is configured to process data relating to theinertial measurement unit 106, the actuators 108, and the sensor(s) 110for operating the robot 100. The controller 102 receives an inertialmeasurement from the inertial measurement unit 106 (e.g., via a wired orwireless connection) disposed on the robot 100 and instructs actuationof at least one of the actuators 108 to alter a pose P of the robot 100to move the CM of the robot 100 relative to the vertical gravitationalaxis V_(g). In some examples, the controller 102 identifies changes inthe inertial measurements between poses P and defines movements by atleast one of the counter-balance body 300 or the articulated arm 600 formaintaining balance of the robot 100 by moving the CM relative to thevertical gravitational axis V_(g).

The actuators 108 may include the tail actuator 352 connected to thetail 300 (e.g., counter-balance body), the leg actuators 413 eachconnected to the respective leg 400, the drive motors 510 each coupledto the respective drive wheel 500 of the corresponding leg 400, and themanipulator head actuator 652 connected to the manipulator head 600(e.g., articulated arm). The tail actuator 352 is configured to move thetail 300 relative to the torso 200. For instance, the controller 102 mayinstruct actuation of the tail actuator 352 to move/pitch the tail 300about the lateral axis (y-axis) relative to the torso 200. Themanipulator head actuator 652 is configured to move the manipulator head600 relative to the torso 200. For instance, the controller 102 mayinstruct actuation of the manipulator head actuator 652 to move/pitchthe manipulator head 600 about the lateral axis (y-axis) relative to thetorso 200. In some examples, the controller 102 actuates the manipulatorhead actuator 652 to operate the manipulator head 600 as a secondcounter-balance body for altering the pose P of the robot 100 by movingthe CM of the robot 100 relative to the vertical gravitational axisV_(g). The controller 102 may additionally or alternatively instructactuation of at least one of the actuator 662 corresponding to thesecond articulated arm joint (e.g., second manipulator head joint) J₁660 or the actuator 662 corresponding to the third articulated arm joint(e.g., third manipulator head joint) J₂ 670 for moving at least one ofthe portions 601, 602, 603 of the manipulator head relative to oneanother and relative to the torso 200.

Each leg actuator 413 (disposed at or near the corresponding hip joint412) is configured to rotate the upper portion 401 of the respective leg400 relative to the torso 200. For instance, the controller 102 mayinstruct actuation of the leg actuator 413 or the belt drive actuator415 associated with the right hip joint 412 to cause the upper portion401 of the prismatic right leg 400 a to move/pitch around the lateralaxis (y-axis) relative to the tail 200. Similarly, the controller 102may instruct actuation of the leg actuator 413 associated with the lefthip joint 412 to cause the left leg 400 b to move/pitch around thelateral axis (y-axis) relative to the tail 200. In some implementations,the actuators 108 further include the belt drive actuators 415configured to drive the corresponding belts 417 when actuated by thecontroller 102. For instance, the controller 102 may instruct actuationof the belt drive actuator 415 in first/second directions toprismatically extend or retract a length of a respective prismatic leg400 by causing a lower portion 402 of the prismatic leg 400 to rotateabout the corresponding knee joint 414 relative to the correspondingupper portion 401. In some configurations, an actuator is disposed atthe corresponding knee joint 414 in lieu of the belt drive actuator 415for moving the lower portion 402 of the leg 400 relative to the upperportion 401.

Each drive motor 510 is configured to apply the corresponding axletorque (FIG. 1B) for rotating the respective drive wheel 500 about thecorresponding ankle joint 422 to move the drive wheel 500 across theground surface 12 along the fore-aft axis (x-axis). For instance, theaxle torque T_(a) may cause the drive wheel 500 to rotate in a firstdirection for moving the robot 100 in a forward direction along thefore-aft axis (x-axis) and/or cause the drive wheel 500 to rotate in anopposite second direction for moving the robot 100 in a rearwarddirection along the fore-aft axis (x-axis). The controller 102 mayinstruct actuation of each drive motor 510 via a corresponding axletorque command T_(a) cmd that specifies a magnitude and direction ofaxle torque T_(a) for the drive motor 510 to apply for rotating therespective drive wheel 500 in the forward or backward direction. Basedon the inertial measurement received from the inertial measurement unit106, the controller 102 may provide a corresponding axle torque commandT_(a) cmd to at least one of the drive motors 510 to instruct the drivemotor 510 to apply the corresponding axle torque T_(a) in order tocontrol tilt to maintain or restore balance of the robot 100.

The sensor(s) 110 of the control system 10 may include, withoutlimitation, one or more of force sensors, torque sensors, velocitysensors, acceleration sensors, position sensors (linear and/orrotational position sensors), motion sensors, location sensors, loadsensors, temperature sensors, touch sensors, depth sensors, ultrasonicrange sensors, infrared sensors, object sensors, and/or cameras. Thesensors 110 may disposed on the robot 100 at various locations such asthe torso 200, tail 300, the at least one leg 400, the drive wheel 500,the articulated arm 600, and/or the end effector 700. The sensors 110are configured to provide corresponding sensor data to the controller102 for monitoring and controlling operation of the robot 100 within anenvironment. In some examples, the controller 102 is configured toreceive sensor data from sensors physically separated from the robot100. For instance, the controller 102 may receive sensor data from aproximity sensor disposed on a target object the robot 100 is configuredto locate and transport to a new location.

The sensor data from the sensors 110 may allow the controller 102 toevaluate conditions for maneuvering the robot 100, altering a pose P ofthe robot 100, and/or actuating various actuators 108 formoving/rotating mechanical components such as the counter-balance body300, the at least one leg 400, the drive wheel 500 rotatably coupled tothe at least one leg 400, the articulated arm 600, and the end effector700. In some examples, the sensor data includes rotational positions ofthe back joint bk, 350, the hip joint(s) 412, and/or the articulated armjoints J₀ 650, J₁ 660, J₂ 670 used to indicate a state of at least oneof the counter-balance body 300, the at least one leg 400, thearticulated arm 600, or the end effector 700. In some examples, therobotic system 10 employs one or more force sensors to measure load onthe actuators that move the counter-balance body 300, the at least oneleg 400, the drive wheel 500 rotatably coupled to the at least one leg400, the articulated arm 600, or the end effector 700. The sensors 110may further include position sensors to sense states of extension,retraction, and/or rotation of the counter-balance body 300, the atleast one leg 400, the drive wheel 500 rotatably coupled to the at leastone leg 400, the articulated arm 600, or the end effector 700.

Other sensors 110 may capture sensor data corresponding to the terrainof the environment and/or nearby objects/obstacles to assist withenvironment recognition and navigation. For instance, some sensors 110may include RADAR (e.g., for long-range object detection, distancedetermination, and/or speed determination) LIDAR (e.g., for short-rangeobject detection, distance determination, and/or speed determination),VICON® (e.g., for motion capture), one or more imaging (e.g.,stereoscopic cameras for 3D vision), perception sensors, a globalpositioning system (GPS) device, and/or other sensors for capturinginformation of the environment in which the robotic system 100 isoperating.

In some implementations, the control system 10 includes one or morepower sources 112 configured to power various components of the robot100. The power sources 112 employed by the robot 100 may include,without limitation, a hydraulic system, an electrical system, energystorage device(s) (e.g. batteries), and/or pneumatic devices. Forinstance, one or more energy storage devices may provide power tovarious components (e.g., actuators 108) of the robot 100. The drivemotors 510 may include electric motors that receive power from one ormore energy storage devices. In some examples, the counter-balance body300 defines a compartment for storing and retaining energy storagedevices. The energy storage devices may be chargeable via wiredconnections or wireless (e.g. induction) connections to an externalpower source. Energy storage devices could also be charged using solarenergy (e.g., generated via solar panels disposed on the robot 100). Insome examples, the energy storage devices are removable so that depletedenergy storage devices can be replaced with fully-charged energy storagedevices. Gasoline engines could also be employed. A hydraulic system mayemploy hydraulic motors and cylinders for transmitting pressurized fluidfor operating various components of the robot 100.

Sit-to-Stand

Referring to FIG. 1F, in some implementations, the controller 102 isresponsible for controlling the robot 100, 100 a to assume a restingpose P, P_(R) when the robot 100 is not in use. The robot 100 may bepowered down while in the resting pose P_(R). In some examples, anenergy storage device (e.g., battery pack(s)) of the robot 100 iselectrically connected to an external power source for charging theenergy storage device when the robot 100 in the resting pose P_(R). Inother examples, the energy storage device is removed from the robot 100while in the resting pose P_(R) to undergo a charging event andre-attaches to the robot 100 once the energy storage device is charged.Similarly, a depleted energy storage device may be swapped with a freshenergy storage device while the robot 100 is in the resting pose P_(R).

While the robot 100 is in the resting pose P_(R), FIG. 1F shows thedrive wheels 500 and the legs 400 supporting the robot 100 on the groundsurface 12. Here, the lower portion 402 and/or the knee joint 414 ofeach leg 400 may be in contact with the ground surface 12 to support therobot 100 thereon. Each of the legs 400 is in a corresponding retractedposition at least partially adjacent the IPB 200 and the at least onearm 600 (e.g., left and right arms in the example shown) is in acorresponding retracted position at least partially adjacent the IPB200. Each leg 400 has a variable length between the corresponding firstand second ends 410, 420 and may assume the retracted position byrotating the corresponding upper portion 401 about the first end 410 ofthe corresponding leg 400 in a first direction (e.g., clockwise relativeto the view of FIG. 1F) to cause the IPB 200 to move downward toward thesurface 12. The corresponding lower portion 402 may further rotate aboutthe corresponding knee joint 414 in an opposite second direction (e.g.,counter-clockwise relative to the view of FIG. 1F) to further assistwith assuming the corresponding leg 400 in the retracted position.

The example of FIG. 1F also shows the at least one arm 600 assuming theretracted position by rotating the at least one arm 600 about the firstarticulated arm joint 650 downward toward the ground surface 12. Inother examples, however, the at least one arm 600 can assume anyposition while in the resting pose P_(R) without departing from thescope of the present disclosure. Moreover, in the resting pose P_(R),the counter-balance body 300 crouches over the legs 400 in a restingposition associated with longitudinal axis L_(CBB, R) extendingsubstantially perpendicular to the gravitational vertical axis V_(g).Accordingly, the counter-balance body 300 moves/pitches about thelateral axis (y-axis) downward toward the ground surface 12 to assumethe corresponding resting position crouched over the legs 400 in thecorresponding retracted positions.

Referring to FIGS. 1G and 1H, in some implementations, the robot 100,100 a transitions from the resting pose P_(R) to an intermediary sittingpose P, P_(Sit) (FIG. 1G) before assuming a standing pose P, P_(Stand)(FIG. 1H) for operating the robot 100. This intermediary sitting poseP_(Sit) is merely illustrative and explanatory in order to depictmovement by components of the robot 100 when transitioning from thestatically stable resting pose P_(R) to a dynamically stable standingpose P_(Stand). Accordingly, the sitting pose P_(Sit) is not intended torepresent a pose that is separate and distinct from the resting andstanding poses, but rather illustrates a pose assumed by the robotcontemporaneously as the robot 100 moves into the standing poseP_(Stand). Upon powering on the robot 100, FIG. 1G shows the robot 100moving (e.g., via operations performed by the controller 102) from theresting pose P_(R) (FIG. 1F) to the sitting pose P_(Sit) by rotatingeach of the legs 400 about the first end 410 of the leg 400 from theretracted position to a corresponding deployed position. In someexamples, the rotating of each of the legs about the first end 410includes rotating the corresponding upper portion 401 about thecorresponding hip joint 412 in the second direction (e.g.,counter-clockwise relative to the view of FIG. 1G) from the retractedposition to the deployed position. Rotating the legs 400 from theretracted positions to the deployed positions causes the IPB 200 to moveupward away from the ground surface 12. In another example (not shown),the counter-balance body 300 moves relative to the IPB 200 and intocontact with the ground surface 12. In this example, the counter-balancebody 300 pushes off of the ground surface to cause the IPB 200 to moveupward away from the ground surface 12. Here, the portion of thecounter-balance body 300 in contact with the ground surface 12 and thedrive wheels 500 are supporting the robot 100.

With continued reference to FIG. 1G, the counter-balance body 300 maymove relative to the IPB 200 when the robot 100 moves from the restingpose P_(R) to the sitting pose P_(Sit) to position a center of mass CM,CM_(Sit) of the robot 100 substantially over the drive wheels 500. Inthe example of FIG. 1G, the CM of the robot 100 shifts from a restingcenter of mass CM, CM_(R) to the sitting CM_(Sit) when the robot 100moves from the resting pose P_(R) (FIG. 1F) to the sitting pose P_(Sit).For instance, the counter-balance body 300 may move/pitch relative tothe vertical gravitational axis V_(g) from the resting positionassociated with longitudinal axis L_(CBB, R) to a sitting positionassociated with longitudinal axis L_(CBB, Sit). The longitudinal axisL_(CBB, Sit) may extend substantially parallel/coincident with thevertical gravitational axis V_(g).

Referring to FIG. 1H, in some implementations, the robot 100 moves fromthe sitting pose P_(Sit) (FIG. 1G) to the standing pose P_(Stand) byaltering the length of each leg 400. For instance, the example of FIG.1H shows the length of each leg 400 expanding to cause the robot 100 tomove from the standing pose P_(Stand) from the sitting pose P_(Sit). Therobot 100 (e.g., via operations performed by the controller 100) mayincrease/expand the length of each leg 400 by rotating the correspondingupper portion 401 about the corresponding hip joint 412 in the seconddirection (e.g., clockwise relative to the view of FIG. 1H) and/orrotating the corresponding lower portion 402 about the correspondingknee joint 414 in the first direction (e.g., counter-clockwise relativeto the view of FIG. 1H). The leg 400 may prismatically extend/expand toincrease the length of each leg 400 using the techniques discussedabove. The robot 100 may further move the counter-balance body 300relative to the IPB 200 to maintain the robot 100 in the standing poseP_(Stand), i.e., maintain balance of the robot 100 during operation ofthe robot 100 in the standing pose P_(Stand).

Moreover, the robot 100 may move the at least one arm 600 from thecorresponding retracted position (FIG. 1F) (or any other position) to anextended position away from the IPB 200 to maintain balance while in thestanding pose P_(Stand). Moving the at least one arm 600 from theretracted position to the extended position may assist in balancing theCM of the robot 100 over the drive wheels 500 while in the standing poseP_(Stand). For instance, the at least one arm 600 may rotate about thefirst articulated arm joint 650 in the second direction (e.g., clockwiserelative to the view of FIG. 1H) to move the arm 600 to the extendedposition away from the IPB 200. In some implementations, the at leastone arm 600 first moves to an initial extended position (FIG. 1G), withthe first portion 601 extending away from the IPB 200 and the secondportion 602 extending downward toward the surface 12, before moving ontoanother extended (FIG. 1H), with both the first and second portions 601,602 extending away from the IPB 200 and substantially coincident withone another. The extended position with both portions 601, 602 extendingaway from the IPB 200 may maintain the standing pose P_(Stand) bymaintaining balance of the CM of the robot 100 over the drive wheels500.

In some examples, the robot 100 further alters

Referring to FIG. 2, in some implementations, a robot 100, 100 bincludes an inverted pendulum body (IPB) 200, a counter-balance body 300disposed on the IPB 200, at least one leg 400 having a first end 410 anda second end 420, and a drive wheel 500 rotatably coupled to the secondend 420 of the at least one leg 400. In view of the substantialsimilarity in structure and function of the components associated withthe robot 100 a with respect to the robot 100 b, like reference numeralsare used herein after and in the drawings to identify like components.

As with the robot 100 a of FIGS. 1A-1E, the robot 100 b has a verticalgravitational axis V_(g), which is perpendicular to a ground surface 12along a direction of gravity, and a center of mass CM, which is a pointwhere the robot 100 has a zero sum distribution of mass. The robot 100further has a pose P based on the CM relative to the verticalgravitational axis V_(g) to define a particular attitude or stanceassumed by the robot 100. The attitude of the robot 100 can be definedby an orientation or an angular position of an object in space.

The IPB 200 includes the first end portion 210 and the second endportion 220. While the counter-balance body 300 of the robot 100 a ofFIGS. 1A-1E is disposed on the first end portion 210 of the IPB 200, thecounter-balance body 300 of the robot 100 b of FIG. 2 is disposed on thesecond end portion 220 of the IPB 200. In a similar fashion to thecounter-balance body 300 of the robot 100 a, the counter-balance body300 of the robot 100 b may move/pitch around a lateral axis (y-axis)that extends perpendicular to the gravitational vertical axis V_(g) anda fore-aft axis (x-axis) of the robot 100 for altering a pose P of therobot 100 b. For instance, the counter-balance body 300 may move/pitchrelative to the gravitational vertical axis V_(g) in a first directionfor shifting the CM of the robot 100 b towards the ground surface 12 andin an opposite second direction for shifting the CM of the robot 100 baway from the ground surface 12. Accordingly, rotational movement by thecounter-balance body 300 relative to the IPB 200 may be used forbalancing and maintaining the robot 100 b in an upright position.

The at least one leg 400 of the robot 100 b may include the variablelength right and left legs 400 a, 400 b each including a correspondingfirst end 410 rotatably coupled to the second end portion 220 of the IPB200 and a corresponding second end 420 rotatably coupled to acorresponding right drive wheel 500 a, 500 b. In a similar fashion tothe robot 100 a, the robot 100 b may employ various actuators foraltering the lengths of the legs 400 a, 400 b. For instance, alength/height of at least one of the legs 400 a, 400 b may be alteredlean the drive wheels 500 a, 500 b into a turning direction to assistwith a turning maneuver.

With continued reference to FIG. 2, the robot 100 b further includes anarticulated arm 600 disposed on the IPB 200 and configured to moverelative to the IPB 200. The articulated arm 600 may have five-degreesof freedom. By contrast to the robot 100 a of FIGS. 1A-1E having thearticulated arm 600 disposed on the second end portion 220 of the IPB200, the robot 100 b includes the articulated arm 600 disposed on thefirst end portion 210 of the IPB 200. The articulated arm 600 extendsbetween a proximal first end 610 rotatably coupled to the IPB 200 and adistal second end 620. In the example shown, the articulated arm 600includes two portions 601, 602 rotatable relative to one another andalso the IPB 200; however, the articulated arm 600 may include more orless portions without departing from the scope of the presentdisclosure. An end effector 700 may be coupled to the distal second end620 of the articulated arm 600 and may include one or more actuators 702for gripping/grasping objects. The end effector 700 may optionallyinclude one or more suction cups 704 configured to provide a vacuum sealbetween the end effector 700 and a target object to allow thearticulated arm 600 to carry the target object.

The articulated arm 600 may move/pitch about the lateral axis (y-axis)relative to the IPB 200. For instance, the articulated arm may rotateabout the lateral axis (y-axis) relative to the IPB 200 in the directionof gravity to lower the CM of the robot 100 while executing turningmaneuvers. The counter-balance body 300 may also simultaneously rotateabout the lateral axis (y-axis) relative to the IPB 200 in the directionof gravity to assist in lowering the CM of the robot 100 b. Here, thearticulated arm 600 and the counter-balance body 300 may cancel out anyshifting in the CM of the robot 100 b in the forward or rearwarddirection along the fore-aft axis (x-axis), while still effectuating theCM of the robot 100 b shift downward closer to the ground surface 12.

In a similar fashion to the robot 100 a of FIGS. 1F-1H, the robot 100 bmay assume a resting pose P_(R) with the drive wheels 500 and legs 400supporting the robot 100 b on the ground surface 12, move from theresting pose P_(R) into a sitting pose P_(Sit) by moving thecounter-balance body 300 relative to the inverted pendulum body awayfrom the ground surface 12 to position the CM of the robot 100substantially over the drive wheels 500, and move from the sitting poseP_(Sit) to a standing pose P_(Stand) by altering a length of each leg400.

Referring to FIG. 3, in some implementations, a robot 100, 100 cincludes an inverted pendulum body (IPB) 200, a counter-balance body 300disposed on the IPB 200, at least one leg 400 having a first end 410 anda second end 420, and a drive wheel 500 rotatably coupled to the secondend 420 of the at least one leg 400. In view of the substantialsimilarity in structure and function of the components associated withthe robot 100 a with respect to the robot 100 b, like reference numeralsare used herein after and in the drawings to identify like components.

As with the robot 100 a of FIGS. 1A-1E, the robot 100 c has a verticalgravitational axis V_(g), which is perpendicular to a ground surface 12along a direction of gravity, and a center of mass CM, which is a pointwhere the robot 100 has a zero sum distribution of mass. The robot 100further has a pose P based on the CM relative to the verticalgravitational axis V_(g) to define a particular attitude or stanceassumed by the robot 100 c. The attitude of the robot 100 can be definedby an orientation or an angular position of an object in space.

The IPB 200 includes the first end portion 210 and the second endportion 220. While the counter-balance body 300 of the robot 100 a ofFIGS. 1A-1E is disposed on the first end portion 210 of the IPB 200, thecounter-balance body 300 of the robot 100 c of FIG. 3 is disposed on thesecond end portion 220 of the IPB 200. In a similar fashion to thecounter-balance body 300 of the robot 100 a, the counter-balance body300 of the robot 100 c may move/pitch around a lateral axis (y-axis)that extends perpendicular to the gravitational vertical axis V_(g) anda fore-aft axis (x-axis) of the robot 100 c for altering a pose P of therobot 100 c. For instance, the counter-balance body 300 may move/pitchrelative to the gravitational vertical axis V_(g) in a first directionfor shifting the CM of the robot 100 c towards the ground surface 12 andin an opposite second direction for shifting the CM of the robot 100 caway from the ground surface 12. Accordingly, rotational movement by thecounter-balance body 300 relative to the IPB 200 may be used forbalancing and maintaining the robot 100 c in an upright position.

The at least one leg 400 of the robot 100 c may include the variablelength right and left legs 400 a, 400 b each including a correspondingfirst end 410 rotatably coupled to the second end portion 220 of the IPB200 and a corresponding second end 420 rotatably coupled to acorresponding right drive wheel 500 a, 500 b. In a similar fashion tothe robot 100 a, the robot 100 c may employ various actuators foraltering the lengths of the legs 400 a, 400 b. For instance, alength/height of at least one of the legs 400 a, 400 b may be alteredlean the drive wheels 500 a, 500 b into a turning direction to assistwith a turning maneuver.

With continued reference to FIG. 3, the robot 100 c further includes anarticulated arm 600 disposed on the IPB 200 and configured to moverelative to the IPB 200. The articulated arm 600 may have five-degreesof freedom. By contrast to the robot 100 a of FIGS. 1A-1E having thearticulated arm 600 disposed on the second end portion 220 of the IPB200, the robot 100 c of FIG. 3 includes the articulated arm 600 disposedon the first end portion 210 of the IPB 200. The articulated arm 600extends between a proximal first end 610 rotatably coupled to the IPB200 and a distal second end 620. In the example shown, the articulatedarm 600 includes two portions 601, 602 rotatable relative to one anotherand also the IPB 200; however, the articulated arm 600 may include moreor less portions without departing from the scope of the presentdisclosure. An end effector 700 may be coupled to the distal second end620 of the articulated arm 600 and may include one or more actuators 702for gripping/grasping objects. The end effector 700 may optionallyinclude one or more suction cups 704 configured to provide a vacuum sealbetween the end effector 700 and a target object to allow thearticulated arm 600 to carry the target object.

The articulated arm 600 may move/pitch about the lateral axis (y-axis)relative to the IPB 200. For instance, the articulated arm may rotateabout the lateral axis (y-axis) relative to the IPB 200 in the directionof gravity to lower the CM of the robot 100 c while executing turningmaneuvers. The counter-balance body 300 may also simultaneously rotateabout the lateral axis (y-axis) relative to the IPB 200 in the directionof gravity to assist in lowering the CM of the robot 100 c. Here, thearticulated arm 600 and the counter-balance body 300 may cancel out anyshifting in the CM of the robot 100 c in the forward or rearwarddirection along the fore-aft axis (x-axis), while still effectuating theCM of the robot 100 b shift downward closer to the ground surface 12.

In a similar fashion to the robot 100 a of FIGS. 1F-1H, the robot 100 cmay assume a resting pose P_(R) with the drive wheels 500 and legs 400supporting the robot 100 c on the ground surface 12, move from theresting pose P_(R) into a sitting pose P_(Sit) by moving thecounter-balance body 300 relative to the inverted pendulum body awayfrom the ground surface 12 to position the CM of the robot 100substantially over the drive wheels 500, and move from the sitting poseP_(Sit) to a standing pose P_(Stand) by altering a length of each leg400.

FIG. 4 illustrates a method 1400 for operating a robot 100. At block1402, the method 1400 includes assuming a resting pose P, P_(R) of therobot on a surface 12. The robot 100 includes an inverted pendulum body(IPB) 200 having first and second end portions 210, 220 and defining aforward driving direction (e.g., along the fore-aft axis (x-axis)). Therobot further includes a counter-balance body 300, at least one armhaving proximal and distal ends, and at least one leg 400 having firstand second ends 410, 420. The counter-balance body 300 is disposed onthe IPB 200 and configured to move relative to the IPB 200, while thefirst end 410 of the at least one leg 400 is prismatically coupled tothe second end portion 220 of the IPB 200. The counter-balance body 300may be disposed on the first end portion 220 of the IPB 200 or thesecond end portion 210 of the IPB 200. The proximal end of the at leastone arm 600 is connected to the IPB 200 and configured to move relativeto the IPB 200. The robot 100 further includes a drive wheel 500rotatably coupled to the second end 420 of the at least one leg 400.

In the resting pose P_(R), the drive wheel 500 and the at least one leg400 may support the robot 100 on the ground surface 12. Moreover, in theresting pose P_(R), the at least one leg 400 may be in a correspondingretracted position at least partially adjacent the IPB 200.

At block 1404, the method 1400 also includes moving from the restingpose P_(R) to a sitting pose P_(Sit) of the robot 100 by moving thecounter-balance body 300 relative to the inverted pendulum body awayfrom the ground surface 12 to position a center of mass CM_(Sit) of therobot 100 substantially over the drive wheel 500.

At block 1406, the method 1400 includes moving from the sitting poseP_(Sit) to a standing pose P_(Stand) by altering a length of the atleast one leg 400. The leg 400 having a variable length between thefirst and second ends 410, 420 of the at least one leg. The leg 400 mayprismatically extend or retract.

Additionally, the method 1400 may maintain the standing pose P_(Stand)by moving the counter-balance body 300 relative to the IPB 200 and/ormoving the at least one arm 600 to an extended position away from theIPB 200. In some examples, when moving the resting pose P_(R) to thesitting pose P_(Sit) of the robot 100, the method 1400 also includes atleast one of: rotating the at least one leg 400 about the first end 410of the at least one leg 400 from the retracted position to a deployedposition, causing the IPB 200 to move upward away from the surface 12;or moving the counter-balance body 300 relative to the IPB 200 and intocontact with the ground surface 12, causing the IPB 200 to move upwardaway from the surface 12. The at least one leg 400 may include an upperportion 401 and a lower portion 402. The upper portion 401 may extendbetween the first end 410 rotatably coupled to the second end portion220 of the IPB 200 and a knee joint 414. The lower portion 402 may berotatably coupled to the knee joint and extend between the knee joint tothe second end 420 rotatably coupled to the drive wheel 500. Thus, inthese examples, altering the length of the at least one leg 400 includesrotating the lower portion 402 about the knee joint 414 relative to theupper portion 401. For instance, the leg 400 may include the prismaticleg 400 that uses the belt drive actuator 415 configured to drive thebelt 417 coupled for common rotation with the corresponding knee joint414. In other examples, when the leg 400 only includes a single link,altering the length of the leg 400 includes prismatically extending theleg 400 linearly so that the second end 420 (and drive wheel 500rotatably coupled thereto) prismatically moves away from the IPB 200along a linear rail.

FIG. 5 is schematic view of an example computing device 1500 that may beused to implement the systems and methods described in this document.The computing device 1500 is intended to represent various forms ofdigital computers, such as laptops, desktops, workstations, personaldigital assistants, servers, blade servers, mainframes, and otherappropriate computers. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

The computing device 1500 includes a processor 1510 (also referred to asdata processing hardware), memory 1520 (also referred to as memoryhardware), a storage device 530, a high-speed interface/controller 1540connecting to the memory 1520 and high-speed expansion ports 1550, and alow speed interface/controller 1560 connecting to a low speed bus 1570and a storage device 1530. Each of the components 1510, 1520, 1530,1540, 1550, and 1560, are interconnected using various busses, and maybe mounted on a common motherboard or in other manners as appropriate.The processor 1510 can process instructions for execution within thecomputing device 1500, including instructions stored in the memory 1520or on the storage device 1530 to display graphical information for agraphical user interface (GUI) on an external input/output device, suchas display 1580 coupled to high speed interface 1540. In otherimplementations, multiple processors and/or multiple buses may be used,as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 1500 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 1520 stores information non-transitorily within the computingdevice 1500. The memory 1520 may be a computer-readable medium, avolatile memory unit(s), or non-volatile memory unit(s). Thenon-transitory memory 1520 may be physical devices used to storeprograms (e.g., sequences of instructions) or data (e.g., program stateinformation) on a temporary or permanent basis for use by the computingdevice 1500. Examples of non-volatile memory include, but are notlimited to, flash memory and read-only memory (ROM)/programmableread-only memory (PROM)/erasable programmable read-only memory(EPROM)/electronically erasable programmable read-only memory (EEPROM)(e.g., typically used for firmware, such as boot programs). Examples ofvolatile memory include, but are not limited to, random access memory(RAM), dynamic random access memory (DRAM), static random access memory(SRAM), phase change memory (PCM) as well as disks or tapes.

The storage device 1530 is capable of providing mass storage for thecomputing device 1500. In some implementations, the storage device 1530is a computer-readable medium. In various different implementations, thestorage device 1530 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device, a flash memory or other similarsolid state memory device, or an array of devices, including devices ina storage area network or other configurations. In additionalimplementations, a computer program product is tangibly embodied in aninformation carrier. The computer program product contains instructionsthat, when executed, perform one or more methods, such as thosedescribed above. The information carrier is a computer- ormachine-readable medium, such as the memory 1520, the storage device1530, or memory on processor 1510.

The high speed controller 1540 manages bandwidth-intensive operationsfor the computing device 1500, while the low speed controller 1560manages lower bandwidth-intensive operations. Such allocation of dutiesis exemplary only. In some implementations, the high-speed controller1540 is coupled to the memory 1520, the display 1580 (e.g., through agraphics processor or accelerator), and to the high-speed expansionports 1550, which may accept various expansion cards (not shown). Insome implementations, the low-speed controller 1560 is coupled to thestorage device 1530 and a low-speed expansion port 1590. The low-speedexpansion port 1590, which may include various communication ports(e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled toone or more input/output devices, such as a keyboard, a pointing device,a scanner, or a networking device such as a switch or router, e.g.,through a network adapter.

The computing device 1500 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 1500 a or multiple times in a group of such servers 1500a, as a laptop computer 1500 b, or as part of a rack server system 1500c.

Various implementations of the systems and techniques described hereincan be realized in digital electronic and/or optical circuitry,integrated circuitry, specially designed ASICs (application specificintegrated circuits), computer hardware, firmware, software, and/orcombinations thereof. These various implementations can includeimplementation in one or more computer programs that are executableand/or interpretable on a programmable system including at least oneprogrammable processor, which may be special or general purpose, coupledto receive data and instructions from, and to transmit data andinstructions to, a storage system, at least one input device, and atleast one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium” and“computer-readable medium” refer to any computer program product,non-transitory computer readable medium, apparatus and/or device (e.g.,magnetic discs, optical disks, memory, Programmable Logic Devices(PLDs)) used to provide machine instructions and/or data to aprogrammable processor, including a machine-readable medium thatreceives machine instructions as a machine-readable signal. The term“machine-readable signal” refers to any signal used to provide machineinstructions and/or data to a programmable processor.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby special purpose logic circuitry, e.g., an FPGA (field programmablegate array) or an ASIC (application specific integrated circuit).Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Computer readable media suitable for storingcomputer program instructions and data include all forms of non-volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, one or more aspects of thedisclosure can be implemented on a computer having a display device,e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, ortouch screen for displaying information to the user and optionally akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method of operating a robot, the methodcomprising: assuming a resting pose of the robot on a surface, the robotcomprising: an inverted pendulum body having first and second endportions; a counter-balance body disposed on the inverted pendulum bodyat the first end portion of the inverted pendulum body, thecounter-balance body configured to move relative to the invertedpendulum body about a lateral axis extending perpendicular to agravitational axis of the robot; at least one arm having proximal anddistal ends, the proximal end connected to the inverted pendulum body,the at least one arm configured to move relative to the invertedpendulum body; at least one leg having first and second ends, the firstend of the at least one leg prismatically coupled to the second endportion of the inverted pendulum body; and a drive wheel rotatablycoupled to the second end of the at least one leg, wherein, in theresting pose, the drive wheel and the at least one leg supporting therobot on the surface, the at least one leg is in a correspondingretracted position at least partially adjacent the inverted pendulumbody; moving from the resting pose to a sitting pose of the robot bymoving the counter-balance body relative to the inverted pendulum bodyaway from the ground surface to position a center of mass of the robotsubstantially over the drive wheel; and moving from the sitting pose toa standing pose of the robot by altering a length of the at least oneleg, the at least one leg having a variable length between the first andsecond ends of the at least one leg.
 2. The method of claim 1, furthercomprising moving the counter-balance body relative to the invertedpendulum body to maintain the standing pose.
 3. The method of claim 1,further comprising moving the at least one arm to an extended positionaway from the inverted pendulum body to maintain the standing pose. 4.The method of claim 1, further comprising at least one of, when movingfrom the resting pose to the sitting pose: rotating the at least one legabout the first end of the at least one leg from the retracted positionto a deployed position, causing the inverted pendulum body to moveupward away from the surface; or moving the counter-balance bodyrelative to the inverted pendulum body and into contact with the groundsurface, causing the inverted pendulum body to move upward away from thesurface.
 5. The method of claim 1, wherein the at least one legcomprises: a right leg having first and second ends, the first end ofthe right leg prismatically coupled to the second end potion of theinverted pendulum body, the right leg having a right drive wheelrotatably coupled to the second end of the right leg; and a left leghaving first and second ends, the first end of the left legprismatically coupled to the second end potion of the inverted pendulumbody, the left leg having a left drive wheel rotatably coupled to thesecond end of the left leg.
 6. The method of claim 1, wherein the atleast one leg comprises: an upper portion extending between the firstend prismatically coupled to the second end portion of the invertedpendulum body and a knee joint; and a lower portion extending betweenthe knee joint and the second end rotatably coupled to the drive wheel,the lower portion rotatably coupled to the knee joint.
 7. The method ofclaim 6, wherein altering the length of the at least one leg comprisesrotating the lower portion about the knee joint relative to the upperportion.
 8. The method of claim 1, wherein the counter-balance body isrotatably coupled to the first end portion of the inverted pendulumbody.
 9. The method of claim 1, wherein the counter-balance body isrotatably coupled to the second end portion of the inverted pendulumbody.
 10. The method of claim 1, wherein the proximal end of the atleast one arm is rotatably coupled to the first end portion of theinverted pendulum body.
 11. The method of claim 1, wherein the proximalend of the at least one arm is rotatably coupled to the second endportion of the inverted pendulum body.
 12. The method of claim 1,wherein the robot further comprises a back joint formed at a couplingbetween the inverted pendulum body and the counter-balance body, thecounter-balance body having a mass offset from a moment generated at theback joint during motion of the counter-balance body relative to theinverted pendulum body.
 13. A robot comprising: an inverted pendulumbody having first and second end portions; a counter-balance bodycoupled to the inverted pendulum body at the first end portion of theinverted pendulum body, the counter-balance body configured to moverelative to the inverted pendulum body about a lateral axis extendingperpendicular to a gravitational axis of the robot; at least one armhaving proximal and distal ends, the proximal end connected to theinverted pendulum body, the at least one arm configured to move relativeto the inverted pendulum body; at least one leg having first and secondends, the first end of the at least one leg prismatically coupled to thesecond end portion of the inverted pendulum body; a drive wheelrotatably coupled to the second end of the at least one leg; and acontroller in communication with the counter-balance body, the at leastone arm, the at least one leg, and the drive wheel, the controllerconfigured to perform operations comprising: assuming a resting pose ofthe robot on a surface, wherein, in the resting pose, the drive wheeland the at least one leg support the robot on the surface, the at leastone leg is in a corresponding retracted position at least partiallyadjacent the inverted pendulum body; moving from the resting pose to asitting pose of the robot by moving the counter-balance body relative tothe inverted pendulum body away from the ground surface to position acenter of mass of the robot substantially over the drive wheel; andmoving from the sitting pose to a standing pose of the robot by alteringthe length of the at least one leg, the at least one leg having avariable length between the first and second ends of the at least oneleg.
 14. The robot of claim 13, wherein the operations further comprisemoving the counter-balance body relative to the inverted pendulum bodyto maintain the standing pose.
 15. The robot of claim 13, wherein theoperations further comprise moving the at least one arm to an extendedposition away from the inverted pendulum body to maintain the standingpose.
 16. The robot of claim 13, wherein the operations further compriseat least one of, when moving from the resting pose to the sitting pose:rotating the at least one leg about the first end of the at least oneleg from the retracted position to a deployed position, causing theinverted pendulum body to move upward away from the surface; or movingthe counter-balance body relative to the inverted pendulum body and intocontact with the ground surface, causing the inverted pendulum body tomove upward away from the surface.
 17. The robot of claim 13, whereinthe at least one leg comprises: a right leg having first and secondends, the first end of the right leg prismatically coupled to the secondend potion of the inverted pendulum body, the right leg having a rightdrive wheel rotatably coupled to the second end of the right leg; and aleft leg having first and second ends, the first end of the left legprismatically coupled to the second end potion of the inverted pendulumbody, the left leg having a left drive wheel rotatably coupled to thesecond end of the left leg.
 18. The robot of claim 13, wherein the atleast one leg comprises: an upper portion extending between the firstend prismatically coupled to the second end portion of the invertedpendulum body and a knee joint; and a lower portion extending betweenthe knee joint and the second end rotatably coupled to the drive wheel,the lower portion rotatably coupled to the knee joint.
 19. The robot ofclaim 18, wherein altering the length of the at least one leg comprisesrotating the lower portion about the knee joint relative to the upperportion.
 20. The robot of claim 13, wherein the counter-balance body isrotatably coupled to the first end portion of the inverted pendulumbody.
 21. The robot of claim 13, wherein the counter-balance body isrotatably coupled to the first end portion of the inverted pendulumbody.
 22. The robot of claim 13, wherein the proximal end of the atleast one arm is rotatably coupled to the first end portion of theinverted pendulum body.
 23. The robot of claim 13, wherein the proximalend of the at least one arm is rotatably coupled to the second endportion of the inverted pendulum body.
 24. The robot of claim 13,further comprising a back joint formed at a coupling between theinverted pendulum body and the counter-balance body, the counter-balancebody having a mass offset from a moment generated at the back jointduring motion of the counter-balance body relative to the invertedpendulum body.